home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekikoh Dennoh Club 1
/
Gekikoh Dennoh Club Vol. 1 (Japan).7z
/
Gekikoh Dennoh Club Vol. 1 (Japan) (Track 1).bin
/
tools
/
pcd2
/
src
/
pcd_main.has
< prev
next >
Wrap
Text File
|
1997-02-27
|
16KB
|
909 lines
.include doscall.mac
.include iocscall.mac
.xdef PCD_MAIN
.xdef BASEDATA_X
.xdef BASEDATA_S,TC1
.xref ChkPCD
.xref Seek_PCD
.xref IMAGE_NUM
.xref DEC_WORK
.xref SW_S,SW_Q,SW_K,SW_PF,FLG_WP
.xref YCC2XHI_S,YCC2XHI_X,YCC2XHI_S2
.xref Graph_Ptr
.xref GetFHdl_Break
.xref SW_LX,SW_LY,VCR2
.xref K_Clear,KEY_DATA,key_chk,Now,Previous,Next,SEL,MN_FLG
.xref YCC2FUL,V_FLAME,V_XY,Wipe,PlayAudioMSF
.cpu 68000
*------------------------------
* ファイルハンドルのデータを表示する
*------------------------------
PCD_MAIN:
movem.l d1-d7/a0-a6,-(sp)
clr.w KEY_DATA * [pcd_pf.has]
clr.l EXITCODE
move.w d0,FHdl
bsr ChkPCD * ファイル構造を審査する [chkpcd.has]
tst.l d0
bmi PCD_MAIN_NoPCD
tst.w d0
bmi PCD_MAIN_OVERVIEW
move.w (IMAGE_NUM),d1 * 指定データが存在するかチェック
@@: btst.l d1,d0
bne @f
lsr.w #1,d1
beq PCD_MAIN_NoPic
bra @b
@@: move.w d1,IMAGE_DAT
move.w FHdl,d0
bsr Seek_PCD * 画像データ位置までSEEK [chkpcd.has]
lea.l (DEC_WORK),a1
add.w d1,d1
clr.l -(sp)
DOS _SUPER
move.l d0,(sp)
tst.l V_FLAME
bge GA_Mode
tst.b (SW_S)
bne Square_Mode
tas FLG_G_Mode
bne @f
lea.l ($c00000),a0
move.w (SW_LY),d2
lea.l 1f,a3
cmp.w (a3,d1.w),d2
* cmp.w (1f,pc,d1.w),d2
bgt Locate_err
mulu.w #1024,d2
adda.l d2,a0
move.w (SW_LX),d2
lea.l 1f,a3
cmp.w (a3,d1.w),d2
* cmp.w (1f,pc,d1.w),d2
bgt Locate_err
add.w d2,d2
adda.w d2,a0
move.l a0,(Graph_Ptr)
bsr Set_Graph_32
tst.b FLG_WP
bne @f
bsr Wipe
@@:
lea.l (BASEDATA_X),a0
add.w (a0,d1.w),a0
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.w #512*2,(a1)+
move.w #512*2*2,(a1)+
lea.l (DEC_WORK),a1
move.l (Graph_Ptr),a0
move.w (FHdl),d0
bsr YCC2XHI_X * 画像を展開する [pcddec.has]
bra PM_1
GA_Mode:
tas FLG_G_Mode
bne @f
move.w (SW_LY),d2
cmp.w (1f,pc,d1.w),d2
bgt Locate_err
move.w (SW_LX),d2
cmp.w (1f,pc,d1.w),d2
bgt Locate_err
move.w SW_LX,d2
swap d2
move.w SW_LY,d2
move.l d2,V_XY
move.w ($e82600),(VCR2)
tst.b FLG_WP
bne @f
bsr Wipe
@@:
lea.l (BASEDATA_S),a0
add.w (a0,d1.w),a0
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.w IMAGE_NUM,d1
add.w d1,d1
add.w d1,d1
move.l (a0,d1.w),(a1)+
lea.l (DEC_WORK),a1
move.l (Graph_Ptr),a0
move.w (FHdl),d0
bsr YCC2FUL * 画像を展開する [pcd_ga.has]
bra PM_1
.align 4
1: .dc.w 512-128,512-256,512-512 * 3:2モード時の座標指定XY最大値
* 1:1モード時の座標指定Y最大値
2: .dc.w 512-192,512-384,0 * 1:1モード時の座標指定X最大値
Square_Mode:
tas FLG_G_Mode
bne @f
lea.l ($c00000),a0
move.w (SW_LY),d2
cmp.w (1b,pc,d1.w),d2
bgt Locate_err
mulu.w #1024,d2
adda.l d2,a0
move.w (SW_LX),d2
cmp.w (2b,pc,d1.w),d2
bgt Locate_err
add.w d2,d2
adda.w d2,a0
move.l a0,(Graph_Ptr)
bsr Set_Graph_11
@@:
cmpi.w #2*2,d1
bne @f
tst.b (SW_S)
bne Square_768
@@:
lea.l (BASEDATA_S),a0
add.w (a0,d1.w),a0
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.w #512*2,(a1)+
move.w #512*2*2,(a1)+
lea.l (DEC_WORK),a1
move.l (Graph_Ptr),a0
move.w (FHdl),d0
bsr YCC2XHI_S * 画像を展開する [pcddec.has]
PM_1: tst.l d0
bmi Other_err
IOCS _B_KEYSNS
tst.l d0
beq 5f
IOCS _B_KEYINP
tst.b (SW_PF)
beq @f
bsr key_chk
move.w d0,KEY_DATA
clr.l d0
bra 6f
@@: lsr.w #8,d0
cmpi.b #1,d0 * ESCが押された
beq PM_ESC
cmpi.b #6*8+5,d0 * SPACEが押された
bne 5f
4: IOCS _B_KEYSNS * スペースキーで展開を一時停止(停止時は再開)
tst.l d0
beq 4b
IOCS _B_KEYINP
lsr.w #8,d0
cmpi.b #1,d0 * ESC
beq PM_ESC
cmpi.b #9*8+6,d0 * ENTER
beq 6f
cmpi.b #3*8+5,d0 * CR
beq 6f
cmpi.b #6*8+5,d0 * SPACE
bne 4b
bra 6f
5:
tst.b (SW_PF)
bne 6f
tst.b (SW_K)
beq 6f
cmpi.b #9*8+6,d0 * ENTER
beq 6f
cmpi.b #3*8+5,d0 * CR
beq 6f
cmpi.b #1,d0 * ESC
beq PM_ESC
@@: IOCS _B_KEYSNS
tst.l d0
beq @b
IOCS _B_KEYINP
lsr.w #8,d0
bra 5b
PM_ESC:
move.l #-4,EXITCODE
6:
DOS _SUPER
addq.l #4,sp
move.l EXITCODE,d0
cmpi.w #103,KEY_DATA
beq @f
tst.w KEY_DATA
bne PCD_MAIN_exit
@@: bsr PlayAudioMSF
PCD_MAIN_exit:
clr.b (FLG_MM)
clr.b (FLG_TM)
clr.b (FLG_G_Mode)
movem.l (sp)+,d1-d7/a0-a6
rts
PCD_MAIN_NoPCD:
moveq.l #1,d0
bra PCD_MAIN_exit
PCD_MAIN_OVERVIEW:
andi.w #$7fff,d0 * d0=枚数
move.w d0,d7 * d7=枚数
subq #1,d7 * d7=表示カウンタ
clr.w -(sp)
move.l #$2800,-(sp)
move.w FHdl,-(sp)
DOS _SEEK * 画像データ位置までSEEK
addq.l #8,sp
clr.l -(sp)
DOS _SUPER
move.l d0,(sp)
tst.l V_FLAME
bge PM_OV_GA_Mode
tst.b (SW_S)
bne PM_OV_Square_Mode
tst.b (FLG_G_Mode) * OVERVIEW.PCDではLOCATE情報を無視するので、
bne @f * フラグをセットしない
bsr Set_Graph_32
tst.b FLG_WP
bne @f
bsr Wipe
@@:
lea.l (LOC_32),a5 * locate情報の初期値
lea.l (YCC2XHI_X),a4 * 展開ルーチンの実行アドレス
lea.l (DEC_WORK),a1
lea.l (BASE_1_16_X),a0
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.w #512*2,(a1)+
move.w #512*2*2,(a1)+
lea.l (DEC_WORK),a1
lea.l (a5),a3
bra PM_OV_loop
PM_OV_Square_Mode:
tst.b (FLG_G_Mode) * OVERVIEW.PCDではLOCATE情報を無視するので、
bne @f * フラグをセットしない
bsr Set_Graph_11
@@:
lea.l (LOC_11),a5 * locate情報の初期値
lea.l (YCC2XHI_S),a4 * 展開ルーチンの実行アドレス
lea.l (DEC_WORK),a1
lea.l (BASE_1_16_S),a0
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.w #512*2,(a1)+
move.w #512*2*2,(a1)+
lea.l (DEC_WORK),a1
lea.l (a5),a3
bra PM_OV_loop
PM_OV_GA_Mode:
tst.b (FLG_G_Mode) * OVERVIEW.PCDではLOCATE情報を無視するので、
bne @f * フラグをセットしない
move.w ($e82600),(VCR2)
tst.b FLG_WP
bne @f
bsr Wipe
@@:
lea.l (LOC_GA),a5 * locate情報の初期値
lea.l (YCC2FUL),a4 * 展開ルーチンの実行アドレス
lea.l (DEC_WORK),a1
lea.l (BASE_1_16_S),a0
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.w #512*2,(a1)+
move.w #512*2*2,(a1)+
lea.l (DEC_WORK),a1
lea.l (a5),a3
bra PM_OV_loop
PM_OV_loop:
lea.l ($c00000),a0
clr.l V_XY
move.w (a3)+,d0
bpl @f
lea.l (a5),a3
1: IOCS _B_KEYSNS
tst.l d0
beq 1b
IOCS _B_KEYINP
lsr.w #8,d0
cmpi.b #1,d0 * ESC
beq ESC_ON
cmpi.b #9*8+6,d0 * ENTER
beq PASS_ON
cmpi.b #3*8+5,d0 * CR
beq PASS_ON
move.w (a3)+,d0
@@: move.w d0,V_XY
add.w d0,d0
adda.w d0,a0
move.w (a3)+,d0
move.w d0,V_XY+2
mulu.w #1024,d0
add.l d0,a0
move.w FHdl,d0
jsr (a4)
tst.l d0
bmi PM_OV_DEC_err
IOCS _B_KEYSNS
tst.l d0
beq 9f
IOCS _B_KEYINP
lsr.w #8,d0
cmpi.b #1,d0 * ESC
beq ESC_ON
cmpi.b #9*8+6,d0 * ENTER
beq PASS_ON
cmpi.b #3*8+5,d0 * CR
beq PASS_ON
cmpi.b #6*8+5,d0 * SPACE
bne 9f
1: IOCS _B_KEYSNS * スペースキーで展開を一時停止(停止時は再開)
tst.l d0
beq 1b
IOCS _B_KEYINP
lsr.w #8,d0
cmpi.b #1,d0 * ESC
beq ESC_ON
cmpi.b #9*8+6,d0 * ENTER
beq PASS_ON
cmpi.b #3*8+5,d0 * CR
beq PASS_ON
cmpi.b #6*8+5,d0 * SPACE
bne 1b
9:
dbra d7,PM_OV_loop
tst.b (SW_K)
beq PASS_ON
@@: IOCS _B_KEYSNS
tst.l d0
beq @b
IOCS _B_KEYINP
lsr.w #8,d0
cmpi.b #9*8+6,d0 * ENTER
beq PASS_ON
cmpi.b #3*8+5,d0 * CR
beq PASS_ON
cmpi.b #1,d0 * ESC
beq PASS_ON
bra @b
PASS_ON:
cmpi.w #2,IMAGE_NUM
bcc @f
clr.b FLG_WP
@@: DOS _SUPER
addq.l #4,sp
moveq.l #0,d0
bra PCD_MAIN_exit
ESC_ON:
cmpi.w #2,IMAGE_NUM
bcc @f
clr.b FLG_WP
@@: DOS _SUPER
addq.l #4,sp
moveq.l #-4,d0
bra PCD_MAIN_exit
PM_OV_DEC_err:
DOS _SUPER
addq.l #4,sp
moveq.l #-5,d0
bra PCD_MAIN_exit
.data
.align 4
LOC_32: .dc.w 0,0,128,0,256,0,384,0,0,128,128,128,256,128,384,128
.dc.w 0,256,128,256,256,256,384,256,0,384,128,384,256,384,384,384,-1
LOC_11: .dc.w 0,0,256,0,0,128,256,128,0,256,256,256,0,384,256,384,-1
LOC_GA: .dc.w 0,0,192,0,384,0,576,0,0,128,192,128,384,128,576,128
.dc.w 0,256,192,256,384,256,576,256,0,384,192,384,384,384,576,384,-1
.text
PCD_MAIN_NoPic:
moveq.l #1,d0
bra PCD_MAIN_exit
Locate_err:
DOS _SUPER
addq.l #4,sp
moveq.l #-2,d0
bra PCD_MAIN_exit
Other_err:
exg d0,d7
DOS _SUPER
addq.l #4,sp
exg d0,d7
bra PCD_MAIN_exit
*------------------------------
*512*512モードを作る
*------------------------------
Set_Graph_32:
movem.l d0-d2/d7,-(sp)
moveq.l #-1,d1
IOCS _CRTMOD
cmpi.w #12,d0
beq 1f
moveq.l #12,d1
tst.b (SW_Q)
beq @f
add.w #$100,d1
moveq.l #-1,d1
IOCS _B_LOCATE
move.l d0,d7
@@:
IOCS _CRTMOD
IOCS _G_CLR_ON
tst.b (SW_Q)
beq @f
move.w d7,d2
swap d7
move.w d7,d1
IOCS _B_LOCATE
@@:
1:
move.w ($e82600),d0
move.w d0,(VCR2)
tst.b (SW_Q)
beq @f
andi.w #$ffdf,d0
move.w d0,($e82600)
@@:
tst.b (SW_Q)
bne @f
IOCS _OS_CUROF
moveq.l #0,d1
IOCS _SKEY_MOD
pea (Clear_txt)
DOS _PRINT
addq.l #4,sp
@@:
movem.l (sp)+,d0-d2/d7
rts
*------------------------------
* 768*512モードを作る
*------------------------------
Set_Graph_11:
movem.l d0-d2/a1,-(sp)
moveq.l #-1,d1
IOCS _B_LOCATE
move.l d0,d2
moveq.l #-1,d1
IOCS _CRTMOD
cmpi.w #16,d0
beq 1f
moveq.l #16,d1
tst.b (SW_Q)
beq @f
add.w #$100,d1
@@:
IOCS _CRTMOD
1:
IOCS _G_CLR_ON
tst.b (SW_Q)
beq @f
swap d2
move.w d2,d1
swap d2
IOCS _B_LOCATE
@@:
tst.b (SW_Q)
bne @f
pea (Clear_txt)
DOS _PRINT
addq.l #4,sp
IOCS _OS_CUROF
moveq.l #0,d1
IOCS _SKEY_MOD
@@:
tst.b FLG_SC
bne @f
move.w ($e82600),d0
move.w d0,(VCR2)
st FLG_SC
@@: tst.b (SW_Q)
beq @f
andi.w #$ffdf,d0
move.w d0,($e82600)
@@:
move.w #$316,($e80028)
move.w #$3,($e82400)
lea.l ($e82000),a1
move.l #$00010001,d0
move.l #$02020202,d1
move.w #127,d2
2:
move.l d0,(a1)+
add.l d1,d0
dbra d2,2b
move.w #512-128,d0
move.w d0,$e80018
move.w d0,$e8001c
move.w d0,$e80020
move.w d0,$e80024
tst.b (SW_Q)
bne 9f
tst.w (TC1)
bne @f
move.w ($e82202),(TC1)
@@: move.w #1,($e82202)
lea.l (TXFL0),a1
IOCS _TXFILL
lea.l (TXFL1),a1
IOCS _TXFILL
9:
movem.l (sp)+,d0-d2/a1
rts
TXFL0: .dc.w 0,0,0,128,512,-1
TXFL1: .dc.w 0,640,0,128,512,-1
Square_768:
tst.b (FLG_MM)
bne S768_MM_OK
tst.b (FLG_TM)
bne S768_MM_OK
tst.b (SW_Q)
bne S768_MMget
bra S768_TMget
S768_MM_OK:
move.w #512-128,d0
move.w d0,$e80018
move.w d0,$e8001c
move.w d0,$e80020
move.w d0,$e80024
lea.l (DEC_WORK),a1
lea.l (BASE_1_S),a0
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.w #512*2,(a1)+
move.w #512*2*2,(a1)+
lea.l (DEC_WORK),a1
lea.l ($c00000),a0
move.l (S768T_PTR),a2
move.w (FHdl),d0
bsr YCC2XHI_S2 * 画像を展開する [pcddec.has]
tst.l d0
bmi S768_dec_err
tst.b (SW_PF)
beq @f
IOCS _B_KEYSNS
tst.l d0
beq @f
IOCS _B_KEYINP
bsr key_chk
tst.l d0
beq @f
cmpi.w #103,d0
beq @f
move.w d0,KEY_DATA
clr.l d0
bra 1f
@@: bsr Scroll_Mode
1: move.l d0,EXITCODE
tst.b (FLG_MM) * 使用メモリを逃がす
beq @f
move.l (S768M_PTR),-(sp)
DOS _MFREE
addq.l #4,sp
@@:
move.l (S768T_PTR),-(sp)
DOS _MFREE
addq.l #4,sp
DOS _SUPER
addq.l #4,sp
move.l EXITCODE,d0
bra PCD_MAIN_exit
Scroll_Mode:
bsr PlayAudioMSF
@@: move.w #0,d7 * スクロール現在値(初期値=0)
move.l (S768T_PTR),a1
sf d1 * スクロール方向を示すフラグ
SM_loop: * 実はこのルーチン、テキトーです。
btst.b #6,($806) *HOME
beq @f
tst.l Now
beq SM_loop
move.w #100,KEY_DATA
bra SM_exit
@@: btst.b #1,($807) *ROLL DOWN
beq @f
move.l Previous,d0
cmp.l Now,d0
beq SM_loop
move.w #101,KEY_DATA
bra SM_exit
@@: btst.b #0,($807) *ROLL UP
beq @f
move.l Next,d0
cmp.l Now,d0
beq SM_loop
move.w #102,KEY_DATA
bra SM_exit
@@: btst.b #2,($807) *UNDO
beq @f
move.w #104,KEY_DATA
bra SM_exit
@@: btst.b #3,($809) *1
beq @f
move.w #1,KEY_DATA
bra SM_exit
@@: btst.b #4,($809) *2
beq @f
tst.b MN_FLG
beq 1f
cmpi.w #2,SEL
bcs SM_loop
1: move.w #2,KEY_DATA
bra SM_exit
@@: btst.b #5,($809) *3
beq @f
tst.b MN_FLG
beq 1f
cmpi.w #3,SEL
bcs SM_loop
1: move.w #3,KEY_DATA
bra SM_exit
@@: btst.b #7,($808) *4
beq @f
tst.b MN_FLG
beq 1f
cmpi.w #4,SEL
bcs SM_loop
1: move.w #4,KEY_DATA
bra SM_exit
@@: btst.b #0,($809) *5
beq @f
tst.b MN_FLG
beq 1f
cmpi.w #5,SEL
bcs SM_loop
1: move.w #5,KEY_DATA
bra SM_exit
@@: btst.b #1,($809) *6
beq @f
tst.b MN_FLG
beq 1f
cmpi.w #6,SEL
bcs SM_loop
1: move.w #6,KEY_DATA
bra SM_exit
@@: btst.b #3,($808) *7
beq @f
tst.b MN_FLG
beq 1f
cmpi.w #7,SEL
bcs SM_loop
1: move.w #7,KEY_DATA
bra SM_exit
@@: btst.b #4,($808) *8
beq @f
tst.b MN_FLG
beq 1f
cmpi.w #8,SEL
bcs SM_loop
1: move.w #8,KEY_DATA
bra SM_exit
@@: btst.b #5,($808) *9
beq @f
tst.b MN_FLG
beq 1f
cmpi.w #9,SEL
bcs SM_loop
1: move.w #9,KEY_DATA
bra SM_exit
@@: btst.b #1,($800) *ESC
bne SM_exit_2
btst.b #6,($809) * ENTER
bne SM_next
btst.b #5,($803) * CR
bne SM_next
btst.b #5,($806) * SP
bne SM_exit
move.b ($807),d0
btst.l #3,d0 * ←
beq SM_L_pass
tst.w d7
beq SM_loop
subq #1,d7
st d1
bra SM_OK
SM_L_pass:
btst.l #5,d0 * →
beq SM_loop
cmp.w #254,d7
beq SM_loop
addq #1,d7
sf d1
SM_OK:
lea.l ($c00000-2),a0
add.w d7,a0
add.w d7,a0
move.w d7,d0
sub #1,d0
tst.b d1
beq @f
addq #2,a0
addq #1,d0
@@: add.w d0,d0
bsr SWAP_LINE
move.w d7,d6
add.w #512-128,d6
move.w d6,$e80018
move.w d6,$e8001c
move.w d6,$e80020
move.w d6,$e80024
bra SM_loop
SM_next:
move.w #107,KEY_DATA
SM_exit:
tst.w KEY_DATA
bne @f
move.w #-1,KEY_DATA
@@: bsr K_Clear *キーバッファクリア
moveq.l #0,d0
rts
SM_exit_2:
moveq.l #-4,d0
rts
S768_dec_err:
DOS _SUPER
addq.l #4,sp
moveq.l #-1,d0
bra PCD_MAIN_exit
*------------------------------
* TVRAMをワークに使う準備をする
*------------------------------
S768_TMget:
move.l #512*4,-(sp)
DOS _MALLOC
addq.l #4,sp
tst.l d0
bmi S768_MMget_err
move.l d0,(S768T_PTR)
move.l d0,a0
lea.l ($e10000),a1
move.w #256*2,d1
move.w #3,d3
1: move.w #127,d2
@@: move.l a1,(a0)+
adda.w d1,a1
dbra d2,@b
add.l #$10000,a1
* lea.l ($10000,a1),a1
dbra d3,1b
st FLG_TM
bra S768_MM_OK
*------------------------------
* MAINRAMをワークに使う準備をする
*------------------------------
S768_MMget:
move.l #256*2*512,-(sp)
DOS _MALLOC
addq.l #4,sp
tst.l d0
bmi S768_MMget_err
move.l d0,(S768M_PTR)
move.l #512*4,-(sp)
DOS _MALLOC
addq.l #4,sp
tst.l d0
bmi S768_MMget_err2
move.l d0,(S768T_PTR)
move.l d0,a0
move.l (S768M_PTR),a1
move.w #256*2,d1
move.w #511,d2
@@:
move.l a1,(a0)+
adda.w d1,a1
dbra d2,@b
st FLG_MM
bra S768_MM_OK
S768_MMget_err2:
move.l (S768M_PTR),-(sp)
DOS _MFREE
addq.l #4,sp
S768_MMget_err:
DOS _SUPER
addq.l #4,sp
moveq.l #-3,d0
bra PCD_MAIN_exit
SWAP_LINE:
* in d0.w=オフセット
* in a0=グラフィックアドレス
* in a1=ポインタテーブルアドレス
movem.l d1/d7/a0-a2,-(sp)
move.w #511,d7
@@:
move.w (a0),d1
move.l (a1)+,a2
adda.w d0,a2
move.w (a2),(a0)
move.w d1,(a2)
lea.l (1024,a0),a0
dbra d7,@b
movem.l (sp)+,d1/d7/a0-a2
rts
.data
FLG_G_Mode: .dc.b 0
FLG_MM: .dc.b 0
FLG_TM: .dc.b 0
Clear_txt: .dc.b $1a,0
FLG_SC: .dc.b 0
.align 4
TC1: .dc.w 0
EXITCODE: .dc.l 0
IMAGE_DAT: .dc.w 2
FHdl: .dc.w 0
BASEDATA_X:
.dc.w BASE_1_16_X-BASEDATA_X
.dc.w BASE_1_4_X-BASEDATA_X
.dc.w BASE_1_X-BASEDATA_X
BASE_1_16_X:
.dc.w 192*3,192*4,192/6-1,128/2-1,192/2-1,192*2-1
BASE_1_4_X:
.dc.w 384*3,384*4,384/6-1,256/2-1,384/2-1,384*2-1
BASE_1_X:
.dc.w 768*3,768*4,768/6-1,512/2-1,768/2-1,768*2-1
BASEDATA_S:
.dc.w BASE_1_16_S-BASEDATA_S
.dc.w BASE_1_4_S-BASEDATA_S
.dc.w BASE_1_S-BASEDATA_S
BASE_1_16_S:
.dc.w 192*3,192*4,192/2-1,128/2-1,192/2-1,192*2-1
BASE_1_4_S:
.dc.w 384*3,384*4,384/2-1,256/2-1,384/2-1,384*2-1
BASE_1_S:
.dc.w 768*3,768*4,768/2-1,512/2-1,768/2-1,768*2-1
.bss
.align 4
S768M_PTR: .ds.l 1
S768T_PTR: .ds.l 1